Бих променил това:
statement.executeQuery(rawQuery);
results = statement.getResultSet();
към това:
results = statement.executeQuery(rawQuery);
Последният със сигурност е одобреният от API начин за това и въпреки че не мога да кажа със сигурност, че първият е проблем, със сигурност изглежда като може да създаде два отделни резултатни набора, от които затваряте само единия.