Yo cambiaría esto:
statement.executeQuery(rawQuery);
results = statement.getResultSet();
a esto:
results = statement.executeQuery(rawQuery);
La última es sin duda la forma aprobada por la API de hacer esto, y aunque no puedo decir con certeza que la primera sea un problema, ciertamente parece como si pudiera crear dos conjuntos de resultados separados, de los cuales solo cierra uno.