Je changerais ceci :
statement.executeQuery(rawQuery);
results = statement.getResultSet();
à ceci :
results = statement.executeQuery(rawQuery);
Ce dernier est certainement le moyen approuvé par l'API de le faire, et même si je ne peux pas dire avec certitude que le premier est un problème, cela semble comme si cela pouvait créer deux ensembles de résultats distincts, dont vous n'en fermez qu'un.