### Question:
DBDatabaseDriverPostgreSQL extends DBDatabaseDriver { public void createReverseFunction(Connection conn) { try { log.info("Creating reverse function: " + CREATE_REVERSE_FUNCTION); executeSQL(CREATE_REVERSE_FUNCTION, null, conn, null); } catch(SQLException e) { log.error("Unable to create reverse function!", e); throw new EmpireSQLException(this, e); } } DBDatabaseDriverPostgreSQL(); String getDatabaseName(); void setDatabaseName(String databaseName); void createReverseFunction(Connection conn); @Override DBCommand createCommand(DBDatabase db); @Override boolean isSupported(DBDriverFeature type); @Override String getSQLPhrase(int phrase); @Override String getConvertPhrase(DataType destType, DataType srcType, Object format); @Override Object getNextSequenceValue(DBDatabase db, String seqName, int minValue, Connection conn); @Override DBColumnExpr getNextSequenceValueExpr(DBTableColumn column); @Override java.sql.Timestamp getUpdateTimestamp(Connection conn); @Override void getDDLScript(DBCmdType type, DBObject dbo, DBSQLScript script); @Override Object getResultValue(ResultSet rset, int columnIndex, DataType dataType);  }### Answer:
@Test public void testCreateReverseFunction() throws SQLException { Connection conn = dbResource.getConnection(); DBDatabaseDriver driver = dbResource.newDriver(); ((DBDatabaseDriverPostgreSQL)driver).createReverseFunction(conn); Statement statement = conn.createStatement(); ResultSet resultSet = statement.executeQuery("SELECT reverse('reverseme')"); resultSet.next(); String reversed = resultSet.getString(1); resultSet.close(); statement.close(); conn.close(); assertEquals("emesrever", reversed); }