pub async fn get_l2_blocks_to_reexecute(&mut self) -> DalResult<Vec<L2BlockExecutionData>> {
        let transactions = sqlx::query_as!(
            StorageTransaction,
            r#"
            SELECT
                *
            FROM
                transactions
            WHERE
                miniblock_number IS NOT NULL
                AND l1_batch_number IS NULL
            ORDER BY
                miniblock_number,
                index_in_block
            "#,
        )
        .instrument("get_l2_blocks_to_reexecute#transactions")
        .fetch_all(self.storage)
        .await?;

        self.map_transactions_to_execution_data(transactions, None)
            .await
    }
Returns L2 blocks with their transactions that state_keeper needs to re-execute on restart.
These are the transactions that are included to some L2 block,
but not included to L1 batch. The order of the transactions is the same as it was
during the previous execution.
core/lib/dal/src/transactions_dal.rs