Vorrei cambiare questo:
statement.executeQuery(rawQuery);
results = statement.getResultSet();
a questo:
results = statement.executeQuery(rawQuery);
Quest'ultimo è certamente il modo approvato dall'API per farlo, e anche se non posso dire con certezza che il primo sia un problema, certamente sembra come se potesse creare due set di risultati separati, di cui ne chiudi solo uno.