Chciałbym to zmienić:
Instrukcja statement.executeQuery(rawQuery);
results = statement.getResultSet();
do tego:
results = statement.executeQuery(rawQuery);
To drugie jest z pewnością zatwierdzonym przez API sposobem na zrobienie tego i chociaż nie mogę powiedzieć z całą pewnością, że to pierwsze stanowi problem, z pewnością wydaje się jakby mógł utworzyć dwa oddzielne zestawy wyników, z których zamykasz tylko jeden.