SELECT query may return 0 to an infinite number of rows

Perhaps it would help if you described the ultimate goal of using that data in chunks, instead of only asking how to chunk the SQL return data. For example, if the goal is to populate a listbox, then consider just reading the visible rows “on demand”.

For example, see this thread for some suggestions.