I dont know the meaning of "TOP" in this context.
If you will retrive all records into a single result set then use the following method. However if you only want to return 100 per result set then the second option will work, although the first is clearly faster and more efficent.
From 1.4 -
"boolean absolute(int row)
Moves the cursor to the given row number in this ResultSet object"
This is ideal for your problem and its also faster than the SQL query, simply set row to row + limit.
Here is the SQL query alternative anyway,
The final row of ResultSet will contain the last rownum returned. Repeat this procedure until EOF is reached.
X = X + (rownum from final row) ' set X to 0 for first call
limit = 100
Query,
select columns
from
(
select *
from table
minus
select *
from table
where rownum <= X)
where rownum <= limit;