The implementation of \Drupal\graphql\Plugin\GraphQL\Schema\SdlSchemaPluginBase has changed to cache a single GraphQL AST instead of SDL strings. This has changed some functions in SdlSchemaPluginBase that you may have previously overwritten.
getFullSchemaDocument and getExtensionDocument have been removed, there are no direct replacements.
getSchemaDocument no longer accepts an $extensions argument and is responsible for caching the built schema. You should likely not need to overwrite this. In case no cached AST is available (e.g. in development mode) then it will retrieve the extensions from getExtensions and build the schema with buildSchemaDocument.
The building of the schema AST if it's not in the cache now happens in buildSchemaDocument. This is a single method which loads the base schema for the SchemaPlugin as well as the base and extension schemas for all enabled extensions. This function is also responsible for triggering the revised AlterSchemaDataEvent and AlterSchemaExtensionDataEvent (see #3586826: AlterSchemaDataEvent and AlterSchemaExtensionDataEvent now work on ASTs rather than strings).
All loaded ASTs are concatenated into a single cached AST which is passed to the GraphQL library's SchemaBuilder::build method which supports extension nodes as of 15.0.0. This removes the need to call SchemaExtender::extend and traverse the AST twice.