If there are too many pools, the function may run out of gas while returning them. Its best to allow for a start offset and maximum length, so data can be returned in batches that dont run out of gas
