Per utilizzare un cursore per recuperare i dati, devi impostare il tipo ResultSet di ResultSet.TYPE_FORWARD_ONLY (l'impostazione predefinita) e autocommit su false oltre a impostare una dimensione di recupero. Questo è indicato nel documento a cui ti sei collegato ma non hai menzionato esplicitamente che hai eseguito quei passaggi.
Fai attenzione con lo schema di partizionamento di PostgreSQL. Fa davvero cose molto orribili con l'ottimizzatore e può causare enormi problemi di prestazioni dove non dovrebbero esserci (a seconda delle specifiche dei tuoi dati). In ogni caso, la tua riga è di sole 1,8 milioni di righe? Non c'è motivo per cui debba essere partizionato solo in base alle dimensioni, dato che è indicizzato in modo appropriato.