Is it possible to integrate an opening book and/or endgame tablebase into a chess engine? If so, how? I'm currently attempting to program a chess engine for a club project; one where many different people could create different engines and they could play a tournament or something of that nature. As such, I'm not sure if it's appropriate for me to rely on a GUI like Arena to provide opening/endgame database support. 

Is there a good way to integrate such databases into the engine itself? I am using UCI on Java to program the engine.
It's possible to integrate an opening book and/or endgame tablebase. Unfortunately there is no Java solutions, because chess engine programming is dominated by C/C++. Maybe you want to switch to C/C++? Your life will be easier.

Opening book

PolyGlot book (http://wbec-ridderkerk.nl/html/details1/PolyGlot.html)

Tablebase

Syzygy tablebase (this question has the details)

My recommendation

Unless you're an expert in programming, I don't think it's a good idea to work on Polyglot and Syzygy yourself. They're not written for beginners. GUI like Arena would be a better idea.