def METHOD_NAME(self, request):
    timing = Timing(self)
    timing.start()
    batch = Batch()
    request_spec = request[self.array]
    logger.debug("Reading %s in %s...", self.array, request_spec.roi)
    voxel_size = self.spec[self.array].voxel_size
    # scale request roi to voxel units
    dataset_roi = request_spec.roi / voxel_size
    # shift request roi into dataset
    dataset_roi = dataset_roi - self.spec[self.array].roi.offset / voxel_size
    # create array spec
    array_spec = self.spec[self.array].copy()
    array_spec.roi = request_spec.roi
    # add array to batch
    batch.arrays[self.array] = Array(self.__read(dataset_roi), array_spec)
    logger.debug("done")
    timing.stop()
    batch.profiling_stats.add(timing)
    return batch