These methods appear to spec out requiring an implementation of Query. If that is the case shouldn't this be indicated in the parameter types:
<T extends Query> T createQueryObject(Class<T> ifc) throws SQLException;
<T extends Query> T createQueryObject(Class<T> ifc) throws SQLException;