Show latest changes in node "View" tab while using Content Moderation I had been trying a lot to display latest revision into view tab irrespective of its state, so if a node is in &quot;Draft&quot; state I still want it to be displayed under &quot;View&quot; Tab rather than &quot;Latest version&quot;. I had tried using hook_ENTITY_TYPE_view, hook_ENTITY_TYPE_view_alter and even tried in template_preprocess_node hook but no luck. I was able to load latest revision but not able to set it using below code in preprocess,
function mytheme_preprocess_node(&amp;$variables) {
  if ($variables['node']-&gt;getType() == 'news' &amp;&amp; $variables['elements']['#view_mode'] = 'full') {
    $node = $variables['elements']['#node'];
    $vid = \Drupal::entityTypeManager()-&gt;getStorage('node')-&gt;getLatestRevisionId($node-&gt;id());
    $node = \Drupal::entityTypeManager()-&gt;getStorage('node')-&gt;loadRevision($vid);
    $variables['elements']['#node']  = $node;
  }
}

Also tried with below code from a custom module,
function mymodule_node_view(array &amp;$build, \Drupal\Core\Entity\EntityInterface $entity, \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display, $view_mode) {
  
  $node = Node::load($build['#node']-&gt;id());
  


  if ($entity-&gt;bundle() == 'article' &amp;&amp; $view_mode = 'full') {
    $revision_ids = \Drupal::entityTypeManager()-&gt;getStorage('node')-&gt;revisionIds($node);
    $latest_rev_id  =  end($revision_ids);
    $node_new = node_revision_load($latest_rev_id);
                   
    $view_builder = \Drupal::entityTypeManager()-&gt;getViewBuilder($entity-&gt;getEntityTypeId());
    $storage = \Drupal::entityTypeManager()-&gt;getStorage($entity-&gt;getEntityTypeId());
    //$node = $storage-&gt;load($build['#node']-&gt;id());
    $build_new = $view_builder-&gt;view($node_new, $view_mode);
    //$output = render($build);
     
    $build['#node'] =  $build_new['#node'];                 
  }

}

Please if anyone can point me in a right direction it will be very helpful.
Thanks in advance.
Finally after spending huge amount of time on this, I am able to figure it out. Thanks to shawn-conn's answer here - Take over display of a content type node route
I have created a custom module and have added below files and code to achieve this,
First created mymodule.services.yml and added below code,
services:
  mymodule.route_subscriber:
    class: Drupal\mymodule\Routing\RouteSubscriber
    tags:
      - { name: event_subscriber }

Then created Routing folder under src.
Added file named RouteSubscriber.php with below code,
&lt;?php

namespace Drupal\mymodule\Routing;

use Drupal\Core\Routing\RouteSubscriberBase;
use Symfony\Component\Routing\RouteCollection;

/**
 * Listens to the dynamic route events.
 */
class RouteSubscriber extends RouteSubscriberBase {

  /**
   * {@inheritdoc}
   */
  public function alterRoutes(RouteCollection $collection) {

    // Alter the canonical node route to our custom route
    if ($route = $collection-&gt;get('entity.node.canonical')) {
      $route-&gt;setDefault('_controller', '\Drupal\mymodule\Controller\NodeRedirectController::view');
    }
  }
}

Then added NodeRedirectController.php under src/Controller directory with below code,
&lt;?php

namespace Drupal\mymodule\Controller;

use Drupal\Core\Entity\EntityInterface;
use Drupal\node\Controller\NodeViewController;


/**
 * Custom node redirect controller
 */
class NodeRedirectController extends NodeViewController {

  public function view(EntityInterface $node, $view_mode = 'full', $langcode = NULL) {
    // Display latest revision content in view mode
    if ($node-&gt;bundle() === 'my_content_type' &amp;&amp; $view_mode == 'full') {
      $vid = \Drupal::entityTypeManager()-&gt;getStorage('node')-&gt;getLatestRevisionId($node-&gt;id());
      $node_new = \Drupal::entityTypeManager()-&gt;getStorage('node')-&gt;loadRevision($vid);
      return parent::view($node_new, $view_mode, $langcode);
    }
    // Otherwise, display as per Drupal's default behaviour
    else {
      return parent::view($node, $view_mode, $langcode);
    }
  }
}

This might help someone.