docs: public GenericRawResults<String[]> queryRaw(ConnectionSource connectionSource, String query, String[] arguments,
  			ObjectCache objectCache) throws SQLException {
  		logger.debug("executing raw query for: {}", query);
  		if (arguments.length > 0) {
  			// need to do the (Object) cast to force args to be a single object
  			logger.trace("query arguments: {}", (Object) arguments);
  		}
  		DatabaseConnection connection = connectionSource.getReadOnlyConnection(tableInfo.getTableName());
  		CompiledStatement compiledStatement = null;
  		try {
  			compiledStatement = connection.compileStatement(query, StatementType.SELECT, noFieldTypes,
  					DatabaseConnection.DEFAULT_RESULT_FLAGS, false);
  			assignStatementArguments(compiledStatement, arguments);
  			GenericRawResults<String[]> rawResults = new RawResultsImpl<String[]>(connectionSource, connection, query,
  					String[].class, compiledStatement, this, objectCache);
  			compiledStatement = null;
  			connection = null;
  			return rawResults;
  		} finally {
  			IOUtils.closeThrowSqlException(compiledStatement, "compiled statement");
  			if (connection != null) {
  				connectionSource.releaseConnection(connection);
  			}
  		}
  	}