@Override public RowReader getReader(Map<String, ?> parameters) { // TODO: fetching DataRows and then converting them to Object[] is kind // of expensive... maybe we can create Object[] bypassing DR, ideally by // iterating a JDBC ResultSet SQLSelect<DataRow> select = SQLSelect.dataRowQuery(sqlTemplate); select.params(parameters); switch (capsStrategy) { case LOWER: select.lowerColumnNames(); break; case UPPER: select.upperColumnNames(); break; case DEFAULT: select.upperColumnNames(); break; } return new JdbcRowReader(attributes, context.iterator(select)); } }