### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

I am receiving a ResourceNotFoundException when attempting to run a BatchGetItem operation on a table that exists.  Downgrading to `0.14.2` fixes the issue and I was not receiving this issue on Friday when running the `latest` container.  I am able to run `scan` and `query` requests successfully on these tables.

### Expected Behavior

BatchGetItem should work on tables that exist

### How are you starting LocalStack?

With a `docker run` command

### Steps To Reproduce

#### How are you starting localstack (e.g., `bin/localstack` command, arguments, or `docker-compose.yml`)

    docker run localstack/localstack

#### Client commands (e.g., AWS SDK code snippet, or sequence of "awslocal" commands)

- `awslocal dynamodb create-table --table-name test-table --attribute-definitions AttributeName=PK,AttributeType=S --key-schema AttributeName=PK,KeyType=HASH --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1`
- `awslocal dynamodb list-tables`
```
{
    "TableNames": [
        "test-table"
    ]
}
```
- `awslocal dynamodb batch-get-item --request-items '{ "test-table": { "Keys": [{ "PK": {"S": "test-key"} }] } }'`
```
An error occurred (ResourceNotFoundException) when calling the BatchGetItem operation: Cannot do operations on a non-existent table
```

### Environment

```markdown
- OS: 
- LocalStack: latest
```


### Anything else?

_No response_
# run 
        dynamodb.execute_statement(
            Statement=f"UPDATE {table_name} SET partiql=1 WHERE Username='Alice'"
        )
        # run 
        dynamodb.execute_statement(Statement=f"DELETE FROM {table_name} WHERE Username='Alice'")
        # get 
        response = ddbstreams.get_shard_iterator(
            StreamArn=stream_arn,
            ShardId=result["StreamDescription"]["Shards"][0]["ShardId"],
            ShardIteratorType="AT_SEQUENCE_NUMBER",
            SequenceNumber=result["StreamDescription"]["Shards"][0]
            .get("SequenceNumberRange")
            .get("StartingSequenceNumber"),
        )
        # get 
        records = ddbstreams.get_records(ShardIterator=response["ShardIterator"])["Records"]
        assert len(records) == 6
        events = [rec["eventName"] for rec in records]
        assert events == ["INSERT", "MODIFY", "REMOVE"] * 2
        # asse
        for idx, record in enumerate(records):
            assert "SequenceNumber" in record["dynamodb"]
            assert record["dynamodb"]["StreamViewType"] == "KEYS_ONLY"
            assert record["dynamodb"]["Keys"] == {"Username": {"S": "Fred" if idx < 3 else "Alice"}}
            assert "OldImage" not in record["dynamodb"]
            assert "NewImage" not in record["dynamodb"]
        # cl
        delete_table(table_name)
    def test_dynamodb_with_kinesis_stream(self):