A wrapper provides an abstract way for creation of object proxies. An example would be when the create() method is used where the wrapper of the class calls new, and the type to be returned is decided by the factory. Another one is the implementation of get_type() method.
uvm_config_db can be considered as a wrapper class, used typically to provide an easier and standardized interface to the resource pool DB. Essentially it hides away details and provides the user with a set of function calls. The static set() function takes a value of the given type and stores it in the resource pool without the user needing to know anything related to how and where to put the item in the resource pool.
From a user perspective, wrapper classes are internal details of how UVM manages to create and maintain certain amount of flexibility in the environment.