### Apache Airflow version

2.2.2 (latest released)

### What happened

Warnings `{providers_manager.py:156} WARNING - Exception when importing 'airflow.providers.google.leveldb.hooks.leveldb.LevelDBHook' from 'apache-airflow-providers-google' package: No module named 'plyvel'` appear in `wait-for-airflow-migrations` init containers and during webserver pod start.

### What you expected to happen

No such warnings, they were not present in 2.1.3 version.

### How to reproduce

Install Airflow using airflow helm chart with 2.2.2 airflow docker image and check `wait-for-airflow-migrations` init containers logs. Warnings can also be seen in webserver container.

### Operating System

Debian “buster”

### Versions of Apache Airflow Providers

Providers that come with the official Airflow docker image.

### Deployment

Official Apache Airflow Helm Chart

### Deployment details

_No response_

### Anything else

Looking at commit history, isn't this supposed to be a debug level log as per https://github.com/apache/airflow/commit/2f32df7b711cf63d18efd5e0023b22a79040cc86#diff-c56df299b30e60d690494057a4e8721d36406c0cca266961ff2ae6504993c8cb ?

Seems like this logic was changed in https://github.com/apache/airflow/commit/29aab6434ffe0fb8c83b6fd6c9e44310966d496a#diff-c56df299b30e60d690494057a4e8721d36406c0cca266961ff2ae6504993c8cbL288 since `_sanity_check`  doesn't handle `ImportError`s as debug messages . Should these warnings be ignored for now?

### Are you willing to submit PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

airflow/providers_manager.py
class LazyDictWithCache(MutableMapping):
    """
    Dictionary, which in case you set callable, executes the passed callable with `key` attribute
    at first use - and returns and caches the result.
    """
    __slots__ = ['_resolved', '_raw_dict']
    def __init__(self, *args, **kw):
        self._resolved = set()
        self._raw_dict = dict(*args, **kw)
    def __setitem__(self, key, value):
        self._raw_dict.__setitem__(key, value)
    def __getitem__(self, key):
        value = self._raw_dict.__getitem__(key)
        if key not in self._resolved and callable(value):
            
            
            value = value()
            self._resolved.add(key)
            if value:
                self._raw_dict.__setitem__(key, value)
        return value
    def __delitem__(self, key):
        self._raw_dict.__delitem__(key)
        try:
            self._resolved.remove(key)
        except KeyError:
            pass
    def __iter__(self):
        return iter(self._raw_dict)
    def __len__(self):