docs: public Statement getPreparedStatement(String sql,
  			Object[] parameters, boolean returnValues) throws DatabaseException {
  		Statement stmt = null;
  		try {
  			if(supportPreparedStatement()){
  				if (appendReturningColumnClause() && returnValues) {
  					stmt = connection.prepareStatement(sql, PreparedStatement.RETURN_GENERATED_KEYS);
  				} else {
  					stmt = connection.prepareStatement(sql);
  				}
  				if (parameters != null) {
  					for (int i = 0; i < parameters.length; i++) {
  						((PreparedStatement)stmt).setObject(i + 1,getEquivalentDBObject(parameters[i]));
  					}
  				}
  			}else{//no substition of parameters
  				stmt = connection.createStatement();
  				return stmt;
  			}
  		} catch (SQLException e) {
  			logSQL(stmt, sql, parameters, true);
  			e.printStackTrace();
  			throw new DataEntryException(e.getMessage());
  		}
  		return stmt;
  	}