Reduce similar methods via pattern?
Extract an abstract base class AbstractWordTable that implements the better-named interface WordTable by moving all code that's duplicated between Adjective and Animal (all but the table and column names). This is a major step in the DRY direction that will simplify your code.

I won't attempt to produce this code on my phone, but the key is for those concrete implementations to contain only unique code. The end result will be with a simple one-line constructor.

Another improvement would be to decouple reading the table contents from picking random words by splitting these functions between WordTable that reads words from a database table into an array and WordList that provides various ways to consume it, including choosing random words and subsets.