За да използвате курсор за извличане на данни, трябва да зададете типа ResultSet на ResultSet.TYPE_FORWARD_ONLY (по подразбиране) и да зададете автоматично false в допълнение към задаването на размер на извличане. Това е посочено в документа, към който сте дали връзка, но не сте споменали изрично, че сте направили тези стъпки.
Бъдете внимателни със схемата за разделяне на PostgreSQL. Той наистина прави много ужасни неща с оптимизатора и може да причини масивни проблеми с производителността там, където не трябва да има (в зависимост от спецификата на вашите данни). Във всеки случай вашият ред само 1,8 милиона реда ли е? Няма причина да е необходимо да се разделя въз основа само на размера, като се има предвид, че е подходящо индексиран.