public List<StreamRecordBatch> getRecords(long startOffset, long endOffset, int maxBytes) {
        List<StreamRecordBatch> records = new ArrayList<>();
        int remainingBytes = maxBytes;
        // TODO: iterator from certain offset
        try (CloseableIterator<StreamRecordBatch> it = dataBlockGroup.iterator()) {
            while (it.hasNext()) {
                StreamRecordBatch recordBatch = it.next();
                if (recordBatch.getBaseOffset() < endOffset && recordBatch.getLastOffset() > startOffset) {
                    records.add(recordBatch);
                    remainingBytes -= recordBatch.size();
                    if (remainingBytes <= 0) {
                        break;
                    }
                    continue;
                } else {
                    recordBatch.release();
                }
                if (recordBatch.getBaseOffset() >= endOffset) {
                    break;
                }
            }
        }
        return records;
    }
Complete the data loading with exception
s3stream/src/main/java/com/automq/stream/s3/cache/blockcache/DataBlock.java