Você pode usar este modelo sql para obter o intervalo desejado de registros para SQL.
WITH [AnyVariable] AS
(
select * ,ROW_NUMBER() over(order by [Col1]) AS 'RowNum'
from [Table1]
)
SELECT * FROM [AnyVariable]
WHERE RowNum BETWEEN 3 AND 6
Basta substituir as coisas em [] pelas suas coisas. Lembre-se de remover o []. E então use isso em seu método acima.