Preheat oven to 350°F(175°C). Grease a 9" springform pan. You'll be placing the springform pan on a baking sheet to put in the oven. I like to add water to the baking sheet to keep the top of the cake moist as it cooks. This prevents cracking.
In a large bowl, combine flour, sugar, cinnamon, salt and baking soda. Stir in oil and eggs. Mix until fully combined. Add carrots and nuts and mix until combined.
For this part, you can use a stand mixer with whisk attachment or large bowl and hand mixer. Beat cream cheese and sugar until smooth. Mix in salt and flour, just until combined, then add vanilla and eggs, until combined. Then add sour cream, just until combined. You’ll need to scrape down the sides of the bowl to fully incorporate.
Pour two-thirds of the carrot cake mixture into the springform pan and smooth with spatula. Then drop in large spoonfuls of the cheesecake mixture and carrot cake mixture. I do one scoop of each, alternating, to form one layer. Then add the rest of the cheesecake mixture over the top and smooth it with a spatula.
Place the springform pan on the baking sheet and add water to the baking sheet. Bake for 1 to 1 1/2 hours, or until the center is no longer jiggly. If the top becomes too dark, cover it with foil.
Remove from the oven and let cool completely, about one hour. Place the pan in the refrigerator and let cool overnight (or at least 4 hours).
To make the frosting, beat the butter and cream cheese until smooth. Add the vanilla and salt. Then slowly add the powdered sugar until fully incorporated.
Run a knife around the inside of the springform pan. Open the springform and remove the cheesecake.
Frost the cheesecake and garnish with walnuts. Slice and serve.